package com.haoyun.mirage.user.mapper;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.haoyun.common.utils.Query;
import com.haoyun.mirage.user.model.dto.UserDTO;
import com.haoyun.mirage.user.model.entity.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 用户表 Mapper 接口
 * </p>
 *
 * @author twg
 * @since 2018-05-30
 */
public interface SysUserMapper extends BaseMapper<SysUser> {

    /**
     * 通过用户名，获取用户角色信息
     *
     * @param username
     * @return
     */
    UserDTO getUserWithRoleByName(@Param("username") String username);

    /**
     * 通过用户id，获取用户角色信息
     *
     * @param userId
     * @return
     */
    UserDTO getUserWithRoleDeptById(@Param("userId") Long userId);

    /**
     * 通过公司ID、用户级别，获取用户角色信息
     *
     * @param compId
     * @param userLevel
     * @return
     */
    List<UserDTO> findUserByCompIdUserLevel(@Param("compId") Long compId, @Param("userLevel") Integer userLevel);

    /**
     * 通过分页查询
     *
     * @param query
     * @return
     */
    List<UserDTO> findUserByPage(Query query, Map param);

    /**
     * 通过公司部门ID，获取用户列表
     *
     * @param deptId
     * @return
     */
    List<UserDTO> findUserByCompIdOrDepId(Long deptId);


}
